-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add DatasetType="project" and rework existing "layout" example into a proper BIDS dataset #1861
Add DatasetType="project" and rework existing "layout" example into a proper BIDS dataset #1861
Conversation
This reverts commit a3c12f8 where I have tried to introduce it in bids-standard#1741 but it required a little more of further detailing.
Here are a few examples of "project"- (or "study-") level directory structures emerging from different initiatives. The fact that several smaller initiatives are arriving at similar but different solutions is strong motivation to provide a unifying solution. BIDS is the most widely accepted of these proposed solutions, and is therefore well-positioned to provide the "project-level" standard. The recursive structure of BIDS datasets (e.g. where BIDS derivatives dataset is stored within a BIDS dataset) is already well-suited for this purpose. Example 1: NipoppyNipoppy provides on solution to this problem, but introduces some structures that diverge from BIDS. Converting this project-level Nipoppy directory to BIDS format requires only minor changes: (1) move
Example 2: The Princeton Handbook for Reproducible NeuroimagingIn the Princeton Handbook for Reproducible Neuroimaging we pre-populate a project-level directory structure for code, data, etc—which will typically contain one or more BIDS datasets within it. This directory structure would be converted to a BIDS-compliant version by repositioning
Example 3: YODAYODA introduces a set of principles for best practices for data analysis. Here, we nest several of the top-level example directories (
Example 4: BIDS-MEGAThe proposed top-level directory structure for BIDS-MEGA BEP035 is already nearly BIDS-compliant. The only substantive change is to nest the
|
Hi @yarikoptic, @snastase, @Remi-Gau , @jbpoline, @michellewang, Here is a revised
Hope this makes sense! Thanks!
|
Thank you @nikhil153 ! does make sense. Let me just run 1 more idea for you. Many tools (e.g. git, datalad, heudiconv) place their configuration, "state" etc files into a corresponding
having a |
@yarikoptic - thanks for a quick review! We did consider having a @jbpoline, @michellewang - Happy to hear thoughts / alternatives! |
indeed, agree, that if files being often worked on, .dotdir might be too hidden. But IMHO |
@nikhil153 re above, I wonder if you intend to have
or alternatively -- where would you place "raw BIDS dataset" which might incorporate behavioral, phenotypic(, physiological, ...) data? |
Hi @yarikoptic -
In that proposal, it was meant to be only imaging BIDS dataset. However, there have been new developments based on the feedback we received in our training workshops with several collaborators over the last few week, including at ENIGMA-PD where we are trying to define and deploy a common end-to-end The tricky thing for us has been the alignment of BIDS layout with the stages of Specifically, dumping all non-derived So based on our discussions with collaborators, we have revised the proposed layout (see below). The major change from the last proposal comprises keeping
These decisions are mainly motivated by our need to keep the Maybe we can setup a call?
|
Hi @yarikoptic, @jbpoline - just pinging to check if you had any comments? |
Hi, this sounds reasonable to me, but would be great to discuss with @yarikoptic and others (@arokem, @dorahermes , @cmaumet, @CPernet ...) I think it also relates to the larger issue of the BIDS scope and whether it is beneficial for BIDS to have all type of data as a subcomponents, or not. There are pros and cons on that, but proposing something that makes adoption by other communities than the neuroimaging one would be important to me. |
I am not sure if the goal is to have a validation of the entire structure, ignoring explicitly some parts, or add a config file to specify which folder needs validation. assuming you use the BIDS validator with some config file, the validation would work on |
@nikhil153 sorry for the delays, I am still coming out of workation mode into proper work mode - need to more time to digest/reply. @CPernet I think we somewhat hijacked this PR into something more important and probably more useful - an attempt to harmonize existing schemes (e.g. of nipoppy) into a prototypical "BIDS project". For the purpose of this PR I was not looking into extending BIDS beyond what it already has really in terms of "official folders" -- all those could be added later. The main point behind this PR is that event current BIDS, with its existing specification for having I will take it out of draft since I think it is ready for the review (and it has been reviewed ;) ) although indeed to be merged/released , we better make validator ready for it. |
Dear all participants of this PR and @bids-maintenance folks -- I would like to move the discussions we had on "how to transform X into BIDS project" into some document so
I do not think that bids-specification itself is a good place. But may be somewhere on the new website or "old" bids-starter-kit? (attn @Remi-Gau ) |
"How to" should go on the new bids website. |
@Remi-Gau do you see the best place to move them (examples on organization of BIDS datasets) to? I am still a little lost in the new website |
I would say either
A preference for the latter as this would help us then make clearer distinctions between tutos and how-tos: see https://diataxis.fr/ |
…ttype * commit 'v1.10.0-35-g5f7004819': (218 commits) Include entity-less "scans.json" into an example of inheritance principle (bids-standard#1945) fix(checks): Enforce timing mutual exclusions on BOLD/ASL data only (bids-standard#1969) refactor contributing (bids-standard#1965) [pre-commit.ci] pre-commit autoupdate (bids-standard#1967) [SCHEMA] Allow physio files for anat datatype (bids-standard#1961) [pre-commit.ci] pre-commit autoupdate Add an empty line in hope to get table rendered properly in "Ordering rules" section (bids-standard#1953) schema: add check for duplicate READMEs (bids-standard#1952) [MAINT] switch bidsschematools to pyproject.toml (bids-standard#1948) fix(schema): Disable TaskName check for channels and markers files Permit and warn on task/acquisition/run for electrodes and coordsystems [FIX] Allow (but discourage) task entity for coordsystem.json fix(schema): Limit MRI metadata checks to NIfTIs fix: Only check for sorted times in arrays py3.13 (bids-standard#1947) [pre-commit.ci] pre-commit autoupdate (bids-standard#1946) [FIX] Update changelog links to avoid redirects (bids-standard#1944) [ENH] Update DWI suffixes to include most common scanner derivatives (bids-standard#1864) [pre-commit.ci] pre-commit autoupdate [MAINT] Update Release_Protocol.md ...
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1861 +/- ##
=======================================
Coverage 86.99% 86.99%
=======================================
Files 16 16
Lines 1407 1407
=======================================
Hits 1224 1224
Misses 183 183 ☔ View full report in Codecov by Sentry. |
discussions on how we could/should represent existing projects yet to be moved to separate repos/PRs etc. But I would like to re-incarnate (close, reopen) this PR from a clean slate so it does not really get derailed by discussions of individual transformations. ATM we have one example ready added in and I will refer to this PR discussions for further information/inspiration. |
dataset_description.json
.TODOs:
Some references